let express = require("express");
var cors = require("cors");

let app = express();
app.use(cors());

/* 

  搜索参数 ：username=1&password=1  req.query.username
  动态id   ：路径中 加个/:id   , /todos/:id   req.params.id
  请求体参数：
        x-www-form-urlencoded类型请求体-》使用 express内置中间件解析 express.urlencoded()
       json类型请求体-》使用 express内置中间件解析 express.json()


*/

// //设置跨域访问
// app.use("*", function (req, res, next) {
//   //设置允许跨域的域名，*代表允许任意域名跨域
//   res.header("Access-Control-Allow-Origin", req.headers.origin || "*");
//   //允许的header类型
//   res.header(
//     "Access-Control-Allow-Headers",
//     "Content-Type, Authorization, X-Requested-With"
//   );
//   // //跨域允许的请求方式
//   res.header(
//     "Access-Control-Allow-Methods",
//     "PUT,POST,GET,DELETEPATCH,OPTIONS"
//   );
//   // 可以带cookies
//   res.header("Access-Control-Allow-Credentials", true);
//   if (req.method == "OPTIONS") {
//     res.sendStatus(200);
//   } else {
//     next();
//   }
// });

app.use(express.urlencoded()); //用来解析 x-www-form-urlencoded类型请求体
app.use(express.json()); //用来解析 json类型请求体

/* 
  get  /todos  列表  搜索参数 pagenum  pagesize
*/
app.get("/todos", function (req, res) {
  // { pagenum: '1', pagesize: '10' }
  console.log(req.query, "搜索参数 req.query");
  // 返回了json数据
  res.json({ code: 1, msg: "获取todos列表", 搜索参数: req.query });
});

/* 
  get  /todos/:id    动态id，  详情接口
    /todos/1  获取id为1的todo详情
*/
app.get("/todos/:id", function (req, res) {
  // { id: '1' }
  console.log(req.params.id);
  console.log(req.params, "动态id req.params");
  // 返回了json数据
  res.json({ code: 1, msg: "获取对应id的todo详情", 动态id: req.params });
});
app.post("/todos", function (req, res) {
  // 请求体

  // { username: 'zhagnsan', password: '123' }
  console.log(req.body);

  // 返回了json数据
  res.json({ code: 1, msg: "发布todo" });
});
app.delete("/todos/:id", function (req, res) {
  // { id: '1' }
  console.log(req.params.id);
  console.log(req.params, "动态id req.params");
  // 返回了json数据
  res.json({ code: 1, msg: "删除todo" });
});

app.patch("/todos/:id", function (req, res) {
  // { id: '1' }
  console.log(req.params.id);
  console.log(req.params, "动态id req.params");
  console.log(req.body);
  // 返回了json数据
  res.json({ code: 1, msg: "修改todo", 动态id: req.params });
});

let productAPI = "/product";
app.get(productAPI, function (req, res) {
  // 返回了json数据
  res.json({ code: 1, msg: "获取列表" });
});
app.post(productAPI, function (req, res) {
  // 返回了json数据
  res.json({ code: 1, msg: "发布" });
});
app.delete(productAPI, function (req, res) {
  // 返回了json数据
  res.json({ code: 1, msg: "删除" });
});

app.patch(productAPI, function (req, res) {
  // 返回了json数据
  res.json({ code: 1, msg: "修改" });
});

app.listen(3000, function () {
  console.log("http://localhost:3000");
  console.log("http://127.0.0.1:3000");
});
